(c) 1998 Microsoft Corporation. Todos os direitos reservados.
Este documento fornece informaτ⌡es de ·ltima hora ou outras informaτ⌡es que complementam a documentaτπo do Microsoft ADO.
--------
CONTE┌DO
--------
1. DESCRI╟├O DO PRODUTO
2. NOVOS RECURSOS
2.1 Busca e φndice
2.2 Atualizaτ⌡es e sincronizaτπo de linhas
2.3 Microsoft OLE DB Persistence Provider
2.4 Microsoft Data Shaping Service para OLE DB
2.5 Microsoft OLE DB Remoting Provider
3. OBSERVA╟╒ES T╔CNICAS
3.1 Melhorias de seguranτa
3.2 Comportamento restritivo
3.3 Personalizando configuraτ⌡es de seguranτa
4. ERROS CONHECIDOS, LIMITA╟╒ES, SOLU╟╒ES ALTERNATIVAS E OBSERVA╟╒ES DE ┌LTIMA HORA DA DOCUMENTA╟├O
-----------------------
1. DESCRI╟├O DO PRODUTO
-----------------------
O ActiveX Data Objects (ADO) Θ uma interface baseada em automaτπo para acesso a dados. O ADO usa a interface OLE DB para acessar uma ampla faixa de fontes de dados, incluindo dados fornecidos atravΘs de ODBC, mas nπo se limitando a eles.
Os usußrios do RDO e DAO rapidamente estarπo confortßveis com a programaτπo para ADO, pois o projeto global do ADO deriva da nossa experiΩncia com o desenvolvimento destas interfaces.
O Microsoft Remote Data Service (RDS, serviτo de dados remotos) Θ um componente do ADO que fornece conectividade de dados rßpida e eficiente e a estrutura de publicaτπo de dados para aplicativos armazenados no Microsoft Internet Explorer. Ele Θ baseado em uma tecnologia cliente/servidor, distribuφda, que funciona atravΘs dos protocolos de aplicativos HTTP, HTTPS (HTTP atravΘs de Secure Sockets layer) e DCOM. Usando controles ActiveX de reconhecimento de dados, o RDS fornece programaτπo de acesso a dados no estilo do Microsoft Visual Basic(R) para desenvolvedores da Web que precisam construir aplicativos distribuφdos e com tratamento intensivo de dados para uso atravΘs de intranets corporativas e da Internet.
-----------------
2. NOVOS RECURSOS
-----------------
O ADO 2.1 adiciona vßrios novos recursos para desenvolvedores.
2.1 Busca e φndice
O mΘtodo Seek e a propriedade Index adicionam rßpida localizaτπo de linhas baseada em φndice em um conjunto de registros.
2.2 Atualizaτ⌡es e sincronizaτπo de linhas
O novo modo de "correτπo de linhas" oferece ao usußrio o controle personalizado de atualizaτ⌡es e sincronizaτπo de linhas para conjuntos de registros criados por uma operaτπo JOIN. Sete novas propriedades dinΓmicas controlam o comportamento de cinco mΘtodos existentes.
2.3 Microsoft OLE DB Persistence Provider
O Microsoft OLE DB Persistence Provider, em conjunto com os mΘtodos Save e Open do objeto de conjunto de registros, salva e restaura um conjunto de registros em um arquivo. Com esta versπo, um conjunto de registros pode ser salvo no formato Extensible Markup Language (XML), a maneira padrπo de definir marcas especificadas pelo usußrio para dados transportados atravΘs da Internet.
2.4 Microsoft Data Shaping Service para OLE DB
O Microsoft Data Shaping Service para OLE DB, serviτo de formataτπo de dados da Microsoft para OLE DB, que oferece suporte a formataτπo de dados, agora pode:
2.4.1 Reformatar um conjunto de registros formatado anteriormente. Para oferecer suporte a este recurso, os conjuntos de registros agora possuem uma propriedade Name que existe enquanto dura a conexπo.
2.4.2 Realizar cßlculos agregados em uma coluna em qualquer nφvel de um conjunto de registros formatado, nπo apenas o filho imediato do pai. Este recurso usa nomes de capφtulos totalmente qualificados para formar um caminho para o nφvel e coluna desejados.
2.4.3 Os comandos COMPUTE parametrizados podem possuir um n·mero arbitrßrio de clßusulas COMPUTE intervenientes entre a clßusula PARAMETER e o argumento do parΓmetro.
2.5 Microsoft OLE DB Remoting Provider
O Microsoft OLE DB Remoting Provider se torna um provedor de serviτo padrπo e adquire novas propriedades dinΓmicas para um melhor desempenho, maior controle do usußrio e compatibilidade retroativa com o ADO 2.0.
-----------------------
3. OBSERVA╟╒ES T╔CNICAS
-----------------------
3.1 Melhorias de seguranτa
Esta versπo inclui melhorias de seguranτa para objetos ADO e RDS de forma que algumas das operaτ⌡es sejam restringida quando o Internet Explorer estiver
executando em modo de "seguranτa".
3.1.1. Zonas
VocΩ pode definir configuraτ⌡es de seguranτa diferentes para "zonas" diferentes no Internet Explorer 4.0 para personalizar o comportamento de objetos ADO/RDS nestas zonas. As quatro zonas a seguir estπo definidas no Internet Explorer 4.0:
* Zona da Internet
* Zona da intranet local
* Zona de sites restritos
* Zona de sites confißveis
3.1.2. Nφveis de seguranτa
VocΩ pode especificar um nφvel de seguranτa a ser usado para cada uma destas zonas. Os nφveis de seguranτa a seguir estπo disponφveis para cada zona:
* Alto
* MΘdio
* Baixo
* Personalizado
Como qualquer outro controle do ActiveX, para que objetos ADO/RDS funcionem completamente no Internet Explorer 4.0, o nφvel de seguranτa deve ser definido como 'MΘdio' ou 'Alto'. Configuraτ⌡es personalizadas sπo usadas para definir que objetos ADO/RDS se comportem em modo seguro ou nπo seguro.
3.2 Comportamento restritivo
Por padrπo, quaisquer operaτ⌡es nπo seguras em objetos ADO/RDS no Internet Explorer 4.0 resultarπo em um prompt do usußrio ao acessar pßginas da 'Zona confißvel local', 'Zona de sites confißveis' e 'Zona da Internet'. As operaτ⌡es nπo seguras em objetos ADO/RDS sπo desativadas, por padrπo, para pßginas carregadas da 'Zona de sites restritos'. O comportamento de ADO/RDS ao executar nestes modos Θ descrito a seguir:
3.2.1 Objetos seguros
Os seguintes objetos sπo considerados 'seguros'. Isto significa que as operaτ⌡es nπo seguras (detalhadas no item 3.2.3) nπo sπo permitidas em um ambiente seguro (por exemplo, Internet Explorer, por padrπo; a menos que sejam usadas configuraτ⌡es personalizadas para executar em um modo nπo seguro) e permitidas em um ambiente nπo seguro (por exemplo, Visual Basic).
a. Objeto RDS.DataControl
b. Objeto RDS.DataSpace
c. Objeto de conjunto de registros ADO
3.2.2 Objetos nπo seguros
Os seguintes objetos sπo considerados 'nπo seguros'. Eles nπo podem ser criados direta ou indiretamente (e fornecidos a um usußrio) ao operar em um ambiente seguro.
a. Objeto RDSServer.DataFactory
b. Objeto de conexπo ADO
c. Objeto de comando ADO
3.2.3 Operaτ⌡es nπo seguras em objetos seguros
As operaτ⌡es a seguir sπo consideradas nπo seguras nos objetos 'seguros': RDS.DataControl, RDS.DataSpace e conjunto de registros ADO. Estas operaτ⌡es nπo sπo permitidas em um ambiente seguro, mas sπo permitidas em um ambiente nπo seguro.
a. RDS.DataControl
i) Todos os cenßrios de duas camadas e DCOM no objeto RDS.DataControl. Isto significa que vocΩ nπo pode abrir conex⌡es de bancos de dados em sua mßquina local ou a partir de servidores aos quais vocΩ se conecta usando o protocolo DCOM.
ii) Todas as operaτ⌡es de trΩs camadas atravΘs de HTTP sπo restritas ao servidor a partir do qual a pßgina foi descarregada. Isto significa que a propriedade Server sobre o objeto RDS.DataControl deve ser igual ao nome do host (http://servidor) a partir do qual a pßgina foi descarregada.
b. RDS.DataSpace
i) Todos os cenßrios de duas camadas e DCOM no objeto RDS.DataSpace. Isto significa que vocΩ nπo pode usar o objeto RDS.DataSpace para chamar objetos comerciais em sua mßquina local ou atravΘs do protocolo DCOM.
ii) Todos os cenßrios de trΩs camadas atravΘs de HTTP sπo restritos ao servidor do qual a pßgina foi descarregada. Isto significa que o segundo parΓmetro na chamada do mΘtodo CreateObject no objeto DataSpace deve apontar para o mesmo servidor do qual a pßgina foi descarregada.
d. Conjunto de registros ADO
i) Efetuando qualquer conexπo em que o provedor nπo Θ MS Remote. Portanto, a seqⁿΩncia da conexπo deve iniciar com "Provedor=MS Remote". A marca "Remote Server" na seqⁿΩncia da conexπo tambΘm deve ter o mesmo nome que o servidor do qual a pßgina foi descarregada. Conex⌡es locais de duas camadas e DCOM nπo sπo permitidas.
ii) Operaτ⌡es de persistΩncia local, como salvar um conjunto de registros em um sistema de arquivos local e abrir um conjunto de registros a partir de um arquivo na mßquina local.
3.3 Personalizando configuraτ⌡es de seguranτa
O comportamento de ADO/RDS Θ controlado pela configuraτπo da opτπo 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros'. ╔ possφvel alterar as configuraτ⌡es de seguranτa, alterando o nφvel de seguranτa de uma zona especφfica. As configuraτ⌡es padrπo da opτπo 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros' para a zona da intranet sπo da seguinte maneira:
Nφvel de seguranτa = Alto Valor = "Desativar"
Nφvel de seguranτa = MΘdio Valor = "Desativar"
Nφvel de seguranτa = Baixo Valor = "Prompt"
Para configuraτ⌡es padrπo em outras zonas de seguranτa, consulte a documentaτπo do Internet Explorer.
Alterando o nφvel de seguranτa, vocΩ pode alterar o comportamento de objetos de conjunto de registros ADO desconectados em execuτπo no navegador. Se vocΩ desejar permitir operaτ⌡es nπo seguras e nπo desejar ser solicitado toda vez que tal operaτπo for tentada, defina explicitamente o valor da opτπo acima como 'Ativar'. Observe que se vocΩ tentar uma operaτπo nπo segura (como salvar um conjunto de registros em um arquivo no sistema de arquivos local) em um conjunto de registros ADO obtido do RDS.DataControl, vocΩ deve definir o valor da opτπo acima para 'Ativar'. A configuraτπo 'Prompt' funciona como 'Desativar' para estes objetos de conjunto de registros (obtidos do RDS.Datacontrol).
VocΩ pode substituir as configuraτ⌡es padrπo, manipulando diretamente as configuraτ⌡es de personalizaτπo da opτπo acima. VocΩ pode escolher entre desativar completamente as operaτ⌡es nπo seguras (descritas acima) ou especificar que um aviso seja exibido sempre que tal operaτπo seja tentada ou permitir tal operaτπo sem nenhum aviso. VocΩ pode definir configuraτ⌡es diferentes para zonas de seguranτa diferentes. As etapas a seguir devem ser seguidas para personalizar suas configuraτ⌡es de seguranτa para uma zona de seguranτa especφfica:
CUIDADO: Lembre-se de que, ativando 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros' (etapa 5 abaixo), vocΩ estß permitindo que QUALQUER controle ActiveX, seguro ou nπo seguro, seja usado a partir das pßginas da Web (o que, potencialmente, exp⌡e as mßquinas dos usußrios a controles maldosos ou c≤digos de script maldosos). Recomenda-se que vocΩ faτa isto apenas nas zonas de seguranτa da 'intranet' ou 'sites confißveis' e nπo na zona da 'Internet'.
1. No menu 'Exibir' no Internet Explorer 4.0, selecione 'Opτ⌡es de Internet' para abrir a caixa de dißlogo 'Opτ⌡es de Internet'. Selecione a guia 'Seguranτa'.
2. Na lista suspensa 'Zona', selecione a zona para a qual deseja personalizar as configuraτ⌡es.
3. Selecione 'Personalizar' para a zona selecionada. Isto ativa o botπo 'Configuraτ⌡es' na caixa de dißlogo.
4. Clique em 'Configuraτ⌡es' para abrir a caixa de dißlogo 'Configuraτ⌡es de seguranτa'.
5. Se desejar ativar operaτ⌡es nπo seguras (descritas em 3.2.3) em objetos ADO/RDS sem que qualquer aviso seja exibido, selecione 'Ativar' para a opτπo 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros' na caixa de seleτπo 'Configuraτ⌡es de seguranτa'. Clique em 'OK'.
6. Se vocΩ desejar que um aviso seja exibido sempre que uma operaτπo nπo segura (descrita em 3.2.3) em objetos ADO/RDS seja tentada, selecione 'Prompt' para a opτπo 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros' na caixa de dißlogo 'Configuraτ⌡es de seguranτa'. Clique em 'OK'.
7. Se vocΩ desejar desativar completamente operaτ⌡es nπo seguras (descritas em 3.2.3) em objetos ADO/RDS, selecione 'Desativar' para a opτπo 'Inicializar e executar scripts de controles ActiveX nπo marcados como seguros' na caixa de dißlogo 'Configuraτ⌡es de seguranτa'. Clique em 'OK'.
8. Se for apropriado, repita estas etapas para personalizar as configuraτ⌡es de seguranτa para outras zonas de seguranτa.
9. Clique em 'OK'.
Agora os objetos ADO/RDS se comportarπo no modo personalizado especificado. Estas configuraτ⌡es afetam o seguinte comportamento de objetos ADO/RDS (conforme descrito em 3.2.3) na zona de seguranτa especificada: abrindo conex⌡es locais de duas camadas; trabalhando atravΘs de DCOM; conectando-se a um servidor diferente daquele de onde a pßgina foi descarregada originalmente; salvando e abrindo um conjunto de registros para/de arquivos na mßquina local.
Se vocΩ definir suas opτ⌡es de personalizaτπo para 'Prompt', o seguinte aviso Θ exibido quando uma operaτπo nπo segura Θ tentada em objetos ADO/RDS:
'A pßgina estß acessando uma fonte de dados em outro domφnio. Deseja permitir isto?' O usußrio tem a opτπo de responder 'Sim' ou 'Nπo'. Se a resposta for 'Sim', a operaτπo Θ concluφda, caso contrßrio, ela falha.
4.1 A personificaτπo de cliente no RDS nπo Θ suportada atualmente, devido a falta de suporte do sistema operacional.
4.2 Ao criar 'Servidores virtuais' no Internet Information Server 4.0, as duas etapas a seguir sπo necessßrias para configurar o servidor para trabalhar com RDS:
A) Ao configurar o servidor, marque 'Permitir acesso de execuτπo'.
B) Mova msadcs.dll para vroot\msadc, onde vroot Θ o diret≤rio inicial do seu servidor virtual.
4.3 Ao usar o RDS em um servidor IIS, o n·mero de segmentos criados por processador pode ser controlado atravΘs da manipulaτπo do registro no servidor da Web. O n·mero de segmentos por processador pode afetar o desempenho em uma situaτπo de alto trßfego ou de baixo trßfego, mas com cenßrios de tamanho de consulta grande. O usußrio deve experimentar para obter melhores resultados. O valor especφfico a ser ajustado Θ:
onde ADCThreads Θ uma REG_DWORD adicionada pelo usußrio. O intervalo de valores vßlidos Θ de 1 a 50. O valor padrπo Θ 6. Se o valor especificado pela chave de registro for maior que 50, o valor mßximo Θ usado (50). O usußrio nπo deve precisar criar este valor de registro; ele nπo Θ incluφdo no registro por padrπo.
4.4 Por padrπo, o ADO Θ instalado com uma configuraτπo RDS Server DataFactory 'segura'. O modo seguro dos componentes do servidor RDS significa que o seguinte Θ verdadeiro:
1. ╔ necessßrio manipulador com o DataFactory
(isto Θ determinado por uma configuraτπo de chave de registro)
presente na lista de manipuladores seguros padrπo e marcado
como o manipulador padrπo.
3. O arquivo Msdfmap.ini Θ instalado no diret≤rio do Windows.
VocΩ deve configurar este arquivo de acordo com suas
necessidades, antes de usar o RDS em modo de trΩs camadas.
Opcionalmente, vocΩ pode configurar uma instalaτπo de DataFactory irrestrita. O DataFactory pode ser usado diretamente sem o manipulador personalizado. Os usußrios ainda podem usar um manipulador personalizado, modificando as seqⁿΩncias de conexπo, mas isto nπo Θ necessßrio.
N≤s fornecemos o arquivo de registro handsafe.reg para configurar as entradas de registro do manipulador para uma configuraτπo segura. Para executar em modo seguro, execute o handsafe.reg.
N≤s fornecemos o arquivo de registro handunsf.reg para configurar as entradas do registro do manipulador para uma configuraτπo irrestrita. Para executar em modo irrestrito, execute o handunsf.reg.
Para obter mais informaτ⌡es sobre o uso do recurso do manipulador de personalizaτπo do RDS, consulte o artigo tΘcnico "Using the Customization Handler Feature in RDS 2.0", disponφvel em http://www.microsoft.com/data/techmat.htm
4.5 O mΘtodo Find pesquisa um conjunto de registros na direτπo especificada a partir da posiτπo da linha atual para o registro que atende aos critΘrios especificados. Se nπo foi definida uma posiτπo de linha atual antes da chamada de Find, ocorre um erro.
4.6 Para usar os eventos ADO FetchProgress e FetchComplete com o Visual Basic, Θ necessßrio, no mφnimo, o Visual Basic versπo 6.
4.7 As operaτ⌡es a seguir sπo consideradas 'seguras' para uso em express⌡es CALC de formataτπo de dados:
4.8 O ADO 2.1 nπo oferece suporte a objetos de conjunto de registros hierßrquicos persistentes no formato XML.
4.9 VocΩ nπo pode atualizar os dados em um conjunto de registros somente leitura salvando os dados como XML e editando o arquivo XML. Ocorrerß um erro quando vocΩ tentar abrir o conjunto de registros do arquivo XML novamente, se os dados XML foram alterados.
4.10 Quando usar adUseClient ou remoting contra o SQL Server 6.5 Service Pack 4, o uso da palavra chave DISTINCT em consultas serß ignorado para conjuntos de resultados atualizßveis. Este Θ um problema do SQL Server e deve ser resolvido em um service pack futuro.
4.11 Os valores de DataTypeEnum listados no t≤pico "Propriedade de tipo" no "Guia de referΩncia do programador de objetos de dados ActiveX" contΩm erros. Os valores de enum a seguir estπo listados, mas nπo podem ser usados:
adArray, adByRef, adVector
Os valores a seguir estπo faltando na lista, mas existem e podem ser usados:
adChapter Um valor de capφtulo de 4 bytes usado para identificar linhas em um conjunto de linhas filho (DBTYPE_HCHAPTER).
adDBFileTime Um valor de hora de arquivo (DBTYPE_DBFILETIME).
adFileTime Um valor de 64 bits que representa o n·mero de intervalos de 100 nanossegundos desde 1░ de janeiro de 1601 (DBTYPE_FILETIME).
adPropVariant Uma PROPVARIANT de automaτπo (DBTYPE_PROP_VARIANT).
adVarNumeric Um valor numΘrico (somente objeto de parΓmetro).
4.12 A lista de valores vßlidos para o parΓmetro Options do mΘtodo Execute de objetos de conexπo e de comandos contΘm erros. O valor ExecuteOptionEnum a seguir estß listado incorretamente duas vezes. Ele deve ser listado apenas uma vez, da seguinte forma:
adCmdTable Indica que o ADO deve avaliar o CommandText como uma tabela e gerar uma consulta SQL para retornar todas as linhas da tabela nomeada em CommandText.
O valor de CommandTypeEnum estß faltando na lista mas existe e pode ser usado:
adCmdFile Indica que o provedor deve avaliar o CommandText como um nome de arquivo.
Os valores de ExecuteOptionEnum a seguir estπo faltando na lista mas existem e podem ser usados:
adAsyncFetchNonBlocking Indica que o segmento principal nunca Θ bloqueado enquanto efetua busca. Se a linha solicitada nπo foi buscada, a linha atual Θ movida automaticamente para o fim do arquivo.
adExecuteNoRecords Indica que o CommandText Θ um comando ou um procedimento armazenado que nπo retorna linhas (por exemplo, um comando que somente insere dados). Se alguma linha Θ recuperada, ela Θ descartada e nπo retornada. Sempre combinado com adCmdText ou adCmdStoredProc.
4.13 A lista de valores de QueryType Enum do mΘtodo OpenSchema de um objeto de conexπo contΘm erros. Os valores a seguir estπo faltando na lista, mas existem e podem ser usados:
Enum Colunas de restriτπo
adSchemaDBInfoKeywords nenhuma
adSchemaDBInfoLiterals nenhuma
adSchemaCubes CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
adSchemaDimensions CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_NAME
DIMENSION_UNIQUE_NAME
adSchemaHierarchies CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_NAME
HIERARCHY_UNIQUE_NAME
adSchemaLevels CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_NAME
LEVEL_UNIQUE_NAME
adSchemaMeasures CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
MEASURE_NAME
MEASURE_UNIQUE_NAME
adSchemaProperties CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_UNIQUE_NAME
MEMBER_UNIQUE_NAME
PROPERTY_TYPE
PROPERTY_NAME
adSchemaMembers CATALOG_NAME
SCHEMA_NAME
CUBE_NAME
DIMENSION_UNIQUE_NAME
HIERARCHY_UNIQUE_NAME
LEVEL_UNIQUE_NAME
LEVEL_NUMBER
MEMBER_NAME
MEMBER_UNIQUE_NAME
MEMBER_CAPTION
MEMBER_TYPE
Operador tree (consultar abaixo)
Observe que os sete ·ltimos valores de Enum (adSchemaCubes a adSchemaMembers) devem ser usados com provedores de dados multidimensionais. Para obter mais informaτ⌡es, inclusive a definiτπo da restriτπo do operador tree de adSchemaMembers, consulte o "Guia de referΩncia do programador de OLE DB para OLAP".
4.14 Os valores de AffectEnum listados no t≤pico "MΘtodo CancelBatch" no "Guia de referΩncia do programador de ActiveX Data Objects" contΩm um erro. Os valores a seguir estπo faltando na lista, mas existem e podem ser usados:
adAffectAllChapters Cancelar alteraτ⌡es pendentes para todos os capφtulos.
4.15 O valor de adModeShareDenyNone ConnectModeEnum estß descrito incorretamente no t≤pico "Propriedade de modo". Ele deveria estar listado da seguinte forma:
adModeShareDenyNone Permitir que outros abram conexπo com quaisquer permiss⌡es. Nem acesso de leitura nem de gravaτπo podem ser negados a outros.
4.16
A propriedade Index anteriormente retornava um erro se nenhum φndice estivesse definido no objeto Recordset.
A partir do ADO 2.1 no MDAC 2.1 Service Pack 1, ela retorna uma seqⁿΩncia de caracteres vazia e uma indicaτπo de que a operaτπo obteve Ωxito.